home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / utility / 329 / xatari.h < prev    next >
Encoding:
C/C++ Source or Header  |  1988-10-18  |  3.4 KB  |  112 lines

  1.  
  2. /***************************************************************************
  3.  
  4.     XATARI.H
  5.  
  6.     - Atari 800 includes
  7.  
  8.     03/21/88 created
  9.  
  10.     07/22/88 23:55
  11.  
  12. ***************************************************************************/
  13.  
  14. #include <stdio.h>
  15. #include <osbind.h>
  16. #include "xglobal.h"
  17. #include "x6502.h"
  18.  
  19. extern LAtariBasic(), LAtariFP(), LAtariChars(), LAtariOSB(), LAtariEnd();
  20. extern LFastFP(), LAtariXL(), LAtariXL2();
  21.  
  22. extern AtariRedraw(), redraw_PMG();
  23.  
  24. extern
  25.     plot_0(), plot_2(), plot_3(), plot_4(), plot_5(), plot_6(),
  26.     plot_7(), plot_8(), plot_9(), plot_A(), plot_B(), plot_C(),
  27.     plot_D(), plot_E(), plot_F();
  28.  
  29. extern Lmp8to16(), Lmp8to32(), rgwRainbow();
  30.  
  31. extern swap_XL();
  32.  
  33. extern long lXLMemory;          /* 16K buffer for XL bank flipping */
  34. extern int fAtariXLROMs;        /* says whether XL ROMs selected */
  35. extern int fAtariXL;            /* says whether XL selected */
  36. extern int fFastIO;             /* fast disk I/O? */
  37. extern int fAtCart;             /* is a cartridge plugged in */
  38. extern int fFastFP;
  39. extern unsigned int uAtRAM;     /* byte past end of RAM ($8000, $A000, $C000) */
  40. extern int fPMGRedraw;          /* do PMG need redraw? */
  41. extern int fRedraw;             /* does Atari need to do a global redraw */
  42. extern int fAtDMA;              /* is DMA on */
  43. extern int bDMACTL;             /* copy of $D400 */
  44. extern int mdAtWidth;           /*playfield width (0-3) */
  45. extern unsigned int uAtCharBase;  /* start of Atari character set */ 
  46. extern unsigned int uPMGBase;   /* start of PMG area */ 
  47. extern int fDOS;
  48. extern int fDDenable;           /* enough memory to support DD? */
  49. extern long lrgbDrive;
  50. extern unsigned uDLStart;       /* start of display list */
  51. extern int rgwAtColors[16];
  52. extern int wVBIrate, wVBIcount;
  53.  
  54. /* structure to define an Atari drive */
  55.  
  56. typedef struct
  57.     {
  58.     char rgchPath[128];     /* path to drive file */
  59.     char rgchName[15];      /* name of drive file */
  60.     int  mdDensity;         /* 0 = off, 1 = sng, 2 = enh, 3 = dbl */
  61.     int  fWP;               /* write protect flag */
  62.     } ATARIDRIVE;
  63.  
  64. extern ATARIDRIVE rgAD[2];
  65.  
  66. /* struture to define a contiguous screen region with the same resolution */
  67. /* start and end are 8 but addresses */
  68. /* there are 14 arrays of DLs, one for each displayable ANTIC mode */
  69. /* last DL in array has all elements == -1 */
  70.  
  71. typedef struct
  72.     {
  73.     unsigned start;         /* first byte of block diplayed */
  74.     unsigned end;           /* byte past end of block displayed */
  75.     unsigned offset;        /* offset into ST screen (scan line * 160) */
  76.     } DL;
  77.  
  78. extern DL *mprgDL[];
  79. extern DL
  80.     rgDL2[], rgDL3[], rgDL4[], rgDL5[], rgDL6[], rgDL7[], rgDL8[],
  81.     rgDL9[], rgDLA[], rgDLB[], rgDLC[], rgDLD[], rgDLE[], rgDLF[];
  82.  
  83. #define fDeleted    0x80
  84. #define fInUse      0x40
  85. #define fLocked     0x20
  86. #define fDos20      0x02
  87. #define fWrite      0x01
  88.  
  89. typedef struct
  90.     {
  91.     char rgchData[124];     /* not 125 so that it is byte aligned */
  92.     unsigned uSectorH:2, uFileNum:6, foo:8, ucBytes:8, uSectorL:8;
  93.     } SECTOR;
  94.     
  95. typedef struct
  96.     {
  97.     char foo[10];
  98.     char rgchBits[90];
  99.     } VTC;
  100.     
  101. typedef struct
  102.     {
  103.     unsigned char rgf;
  104.     /* fDeleted:1, fInUse:1, fLocked:1, unused:3, fDos20:1, fWrite:1; */
  105.     unsigned char cSizeL;
  106.     unsigned char cSizeH;
  107.     unsigned char cStartL;
  108.     unsigned char cStartH;
  109.     char rgchName[11];      
  110.     } DIRENTRY;
  111.  
  112.